package com.ybkj.daijia.server.exception;

/**
 * @author zhyu
 * @date 2019/12/15 12:01
 */

import com.ybkj.daijia.constant.ParamConstant;
import lombok.Getter;

/**
 * @author zhyu
 * @date 2019/11/25 9:34
 * 一个可以返回给用户的异常
 * 异常的信息对用户透明
 */
public class CanThrowToUserException extends RuntimeException {

    /**
     * 状态码
     */
    @Getter
    private int code;

    /**
     * 信息的参数名
     * 有的参数名称不叫message
     */
    @Getter
    private String msgStr;

    /***
     * 构造一个message参数为Constant.MESSAGE的异常
     * @param message 信息
     * @param code  状态码
     */
    public CanThrowToUserException(String message, int code) {
        super(message);
        this.code = code;
        msgStr = ParamConstant.MESSAGE;
    }

    /***
     * 构造一个message参数为自定义的异常
     * @param message 信息
     * @param code  状态码
     */
    public CanThrowToUserException(String message, String msgStr, int code) {
        super(message);
        this.msgStr = msgStr;
        this.code = code;
    }

    /***
     * 构造一个message参数为"errorMsg"的异常
     * @param message 信息
     * @param code  状态码
     */
    public static CanThrowToUserException getErrorMessageInstance(String message, int code) {
        return new CanThrowToUserException(message, ParamConstant.ERROR_MSG, code);
    }
}
